package cn.ichiva.tushare.analysis.data.国内宏观.国民经济;

import cn.ichiva.tushare.analysis.Config;
import cn.ichiva.tushare.sdk.tushare.TuClient;
import cn.ichiva.tushare.sdk.tushare.TuDataCacheAble;
import cn.ichiva.tushare.sdk.tushare.entity.TuRequest;

import java.util.*;

/**
 * GDP数据
 *
 * 中国GDP公布时间是每季度公布一次和每年公布一次。
 * 中国季度GDP公布的具体日期是，下一季度第一个月中旬15-20号之间，
 * 公布上个季度GDP数据；中国全年GDP公布的具体日期是，
 * 每年年初的1月15-20号之间，公布上一年度的全年GDP。
 *
 * 获取2000年到现在的所有数据
 */
public class GDP extends TuDataCacheAble {

    public GDP(TuClient client) {
        super(client);

        TuRequest request = new TuRequest();
        request.setApi("cn_gdp");
        request.setDescribe("获取国民经济之GDP数据");

        HashMap<String,String> paramsMap = new HashMap<>();
        paramsMap.put("start_m","2000Q1");
        //paramsMap.put("end_m",DateUtils.lastTUMonthString());
        request.setParams(paramsMap);

        LinkedHashMap<String,String> fieldMap = new LinkedHashMap<>();
        fieldMap.put("quarter","季度");
        fieldMap.put("gdp","GDP累计值（亿元）");
        fieldMap.put("gdp_yoy","当季同比增速（%）");
        fieldMap.put("pi","第一产业累计值（亿元）");
        fieldMap.put("pi_yoy","第一产业同比增速（%）");
        fieldMap.put("si","第二产业累计值（亿元）");
        fieldMap.put("si_yoy","第二产业同比增速（%）");
        fieldMap.put("ti","第三产业累计值（亿元）");
        fieldMap.put("ti_yoy","第三产业同比增速（%）");

        request.setFieldMap(fieldMap);
        setRequest(request);
    }

    public static void main(String[] args) {
        new GDP(new TuClient(Config.url, Config.token))
                .get().ifPresent(System.out::println);
    }
}
